SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROC [dbo].[SP_TDREPO_FINA_Q01]            
/*------------------------------------------------------------*/            
/*----- Empresa          : OFISIS S.A.                    ----*/            
/*----- Cliente          : OFISIS S.A.                    ----*/            
/*----- Sistema          : Contabilidad                   ----*/            
/*----- Modulo           : Reporteador Financiero         ----*/            
/*----- Programa         : Consulta de Saldos             ----*/            
/*----- Script           : TDREPO_FINA                    ----*/            
/*----- Nombre           : SP_TDREPO_FINA_Q01             ----*/            
/*----- Desarrollado por : Martin Garcia Farfan           ----*/            
/*----- Fecha            : 03/05/1999                     ----*/            
/*----- Base de Datos    : MS SQL Server                  ----*/            
/*----- Version          : 6.5                            ----*/            
/*----- Invoca a SP      :                                ----*/            
/*------------------------------------------------------------*/            
/*------------------------------------------------------------*/                      
/*----- Modificado 1 por : Percy Garcia                   ----*/                      
/*----- Fecha Modifica   : 29/12/2003                     ----*/                      
/*----- Detalle Modifica : Like al CODIGO DE AUXILIAR     ----*/            
/*----- (CASO OBTENGA SALDO A NIVEL NO ANALITICO)         ----*/                      
/*------------------------------------------------------------*/                  
/*------------------------------------------------------------*/                      
/*----- Modificado 2 por : Percy Garcia                   ----*/                      
/*----- Fecha Modifica   : 08/06/2004                     ----*/                      
/*----- Detalle Modifica : Like al CODIGO DE ORDEN        ----*/            
/*----- SERVICIO MANEJO DE QUIEBRES POR O/T, CORRECCION   ----*/        
/*----- VARIABLE @VSDE_SELE_ORDE POR @VSDE_SELE_0003 POR  ----*/        
/*----- LO QUE NO FLTRABA POR O/T CASO QUE NO HUBIESE AUXI----*/        
/*------------------------------------------------------------*/        
/*------------------------------------------------------------*/        
/*----- Modificado 2 por : LMGP                           ----*/        
/*----- Fecha Modifica   : 10/08/2004                     ----*/        
/*------------------------------------------------------------*/        
/*------------------------------------------------------------*/            
/*----- Drop proc SP_TDREPO_FINA_Q01                      ----*/            
/*----- Grant Execute on SP_TDREPO_FINA_Q01 to public     ----*/            
/*----- Exec SP_TDREPO_FINA_Q01 '01', 'E', 'P', '999', '@ABON',             
        '10', '', '', '', '1200302P', '', '',             
        '', '', '', '', '', '', '', '', '', '', '', ''    ----*/            
/*------------------------------------------------------------*/            
@ISCO_EMPR          TD_VC_002,            
@ISTI_REPO          TD_VC_001,      -- E: Empresa / C: Corporaci?n        
@ISTI_REPO_EMPR     TD_VC_001,      -- P: Plan de Cuentas / F: Flujo de Efectivo / C: Plan Corporativo        
@ISCO_REPO          TD_VC_003,            
@ISCO_FORM          TD_VC_008,            
@ISCO_CNTA_EMPR     TD_VC_020,
@ISTI_PROC          TD_VC_020
As            
Declare            
@ISTI_AUXI_EMPR     TD_VC_001,          
@ISCO_AUXI_EMPR     TD_VC_020,          
@ISCO_ORDE_SERV     TD_VC_020,          
@ISNU_COLU_0001     TD_VC_020,      -- Cabecera columna 1          
@ISNU_COLU_0002     TD_VC_020,      -- Cabecera columna 2          
@ISNU_COLU_0003     TD_VC_020,      -- Cabecera columna 3          
@ISNU_COLU_0004     TD_VC_020,      -- Cabecera columna 4          
@ISNU_COLU_0005     TD_VC_020,      -- Cabecera columna 5          
@ISNU_COLU_0006     TD_VC_020,      -- Cabecera columna 6          
@ISNU_COLU_0007     TD_VC_020,      -- Cabecera columna 7          
@ISNU_COLU_0008     TD_VC_020,      -- Cabecera columna 8          
@ISNU_COLU_0009     TD_VC_020,      -- Cabecera columna 9          
@ISNU_COLU_0010     TD_VC_020,      -- Cabecera columna 10          
@ISNU_COLU_0011     TD_VC_020,      -- Cabecera columna 11          
@ISNU_COLU_0012     TD_VC_020,      -- Cabecera columna 12          
@ISNU_COLU_0013     TD_VC_020,      -- Cabecera columna 13          
@ISNU_COLU_0014     TD_VC_020,      -- Cabecera columna 14          
@ISNU_COLU_0015     TD_VC_020,      -- Cabecera columna 15  
 @VSNU_COLU         TD_VC_020,            
 @VNNU_CONT         TD_IN_001,            
 @VNIM_SALD         TD_NU_016_004,            
 @CNIM_SALD_TEMP    TD_NU_016_004,            
-- Variable Cabecera de reporte            
 @VSNU_REGI_TEMP    TD_VC_001,        
 @VSCO_UNID_TEMP    TD_VC_003,        
 @VSNU_ANNO_TEMP    TD_VC_004,        
 @VSNU_MESE_TEMP    TD_VC_002,        
 @VSTI_SALD_TEMP    TD_VC_001,        
-- Variable que forman el cursor de saldos            
 @VSCO_CNTA_TEMP    TD_VC_020,        
 @VSTI_AUXI_TEMP    TD_VC_001,        
 @VSCO_AUXI_TEMP    TD_VC_020,        
 @VSCO_ORDE_TEMP    TD_VC_020,        
        
 @VSDE_SELE_CNTA    TD_VC_050,        
 @VSDE_SELE_TIPO    TD_VC_050,        
 @VSDE_SELE_AUXI    TD_VC_050,        
 @VSDE_SELE_ORDE    TD_VC_050,        
            
 @VSDE_SELE_0001    varchar(255),        
 @VSDE_SELE_0002    varchar(255),        
 @VSDE_SELE_0003    varchar(255),        
 @VSDE_SELE_0004    varchar(255),        
 @VSDE_SELE_0005    varchar(255)        
            
create table #TWSALD_EMPR_Q23_1            
(IM_MVTO_0001  varchar(20)  NULL,            
 IM_MVTO_0002  varchar(20)  NULL,            
 IM_MVTO_0003  varchar(20)  NULL,            
 IM_MVTO_0004  varchar(20)  NULL,            
 IM_MVTO_0005  varchar(20)  NULL,            
 IM_MVTO_0006  varchar(20)  NULL,            
 IM_MVTO_0007  varchar(20)  NULL,            
 IM_MVTO_0008  varchar(20)  NULL,            
 IM_MVTO_0009  varchar(20)  NULL,            
 IM_MVTO_0010  varchar(20)  NULL,            
 IM_MVTO_0011  varchar(20)  NULL,            
 IM_MVTO_0012  varchar(20)  NULL,            
 IM_MVTO_0013  varchar(20)  NULL,            
 IM_MVTO_0014  varchar(20)  NULL,            
 IM_MVTO_0015  varchar(20)  NULL)            
          
If @ISTI_PROC = 'M'  
select @ISTI_AUXI_EMPR = TI_AUXI_EMPR,       
@ISCO_AUXI_EMPR = CO_AUXI_EMPR,          
@ISCO_ORDE_SERV = CO_ORDE_SERV,          
@ISNU_COLU_0001 = NU_COLU_0001,
@ISNU_COLU_0002 = NU_COLU_0002,
@ISNU_COLU_0003 = NU_COLU_0003,
@ISNU_COLU_0004 = NU_COLU_0004,
@ISNU_COLU_0005 = NU_COLU_0005,
@ISNU_COLU_0006 = NU_COLU_0006,
@ISNU_COLU_0007 = NU_COLU_0007,
@ISNU_COLU_0008 = NU_COLU_0008,
@ISNU_COLU_0009 = NU_COLU_0009,
@ISNU_COLU_0010 = NU_COLU_0010,
@ISNU_COLU_0011 = NU_COLU_0011,
@ISNU_COLU_0012 = NU_COLU_0012,
@ISNU_COLU_0013 = NU_COLU_0013,
@ISNU_COLU_0014 = NU_COLU_0014,
@ISNU_COLU_0015 = NU_COLU_0015
from #TWREPO_FINA_Q01_1

Else If @ISTI_PROC = 'P'  
select @ISTI_AUXI_EMPR = TI_AUXI_EMPR,       
@ISCO_AUXI_EMPR = CO_AUXI_EMPR,          
@ISCO_ORDE_SERV = CO_ORDE_SERV,          
@ISNU_COLU_0001 = NU_COLU_0001,
@ISNU_COLU_0002 = NU_COLU_0002,
@ISNU_COLU_0003 = NU_COLU_0003,
@ISNU_COLU_0004 = NU_COLU_0004,
@ISNU_COLU_0005 = NU_COLU_0005,
@ISNU_COLU_0006 = NU_COLU_0006,
@ISNU_COLU_0007 = NU_COLU_0007,
@ISNU_COLU_0008 = NU_COLU_0008,
@ISNU_COLU_0009 = NU_COLU_0009,
@ISNU_COLU_0010 = NU_COLU_0010,
@ISNU_COLU_0011 = NU_COLU_0011,
@ISNU_COLU_0012 = NU_COLU_0012,
@ISNU_COLU_0013 = NU_COLU_0013,
@ISNU_COLU_0014 = NU_COLU_0014,
@ISNU_COLU_0015 = NU_COLU_0015
from #TWREPO_FINA_Q01_2

If @ISCO_CNTA_EMPR = ''            
  Select @VSCO_CNTA_TEMP = '%'            
Else            
  Select @VSCO_CNTA_TEMP = @ISCO_CNTA_EMPR            
        
If @ISTI_AUXI_EMPR = '' Or @ISTI_AUXI_EMPR IS NULL        
  Select @VSTI_AUXI_TEMP = '%'            
Else            
  Select @VSTI_AUXI_TEMP = @ISTI_AUXI_EMPR            
        
If @ISCO_AUXI_EMPR = '' Or @ISCO_AUXI_EMPR IS NULL           
  Select @VSCO_AUXI_TEMP = '%'            
Else            
  Select @VSCO_AUXI_TEMP = @ISCO_AUXI_EMPR            
        
If @ISCO_ORDE_SERV = '' Or @ISCO_ORDE_SERV IS NULL           
  Select @VSCO_ORDE_TEMP = '%'            
Else            
  Select @VSCO_ORDE_TEMP = @ISCO_ORDE_SERV            
            
Select @VNNU_CONT = 1            
Select @VSNU_COLU = @ISNU_COLU_0001            
/*--- Pregunto por el tipo de reporte para armar el select ---*/            
if @ISCO_FORM = '@SALD' Or @ISCO_FORM = '@SANT' Or @ISCO_FORM = '@ACRE' Or @ISCO_FORM = '@DEUD'  
Begin   
 If @ISTI_REPO = 'E'             
  Begin            
   If @ISTI_REPO_EMPR = 'P'            
    Select @VSDE_SELE_0001 ='Select Isnull(Sum(Isnull(IM_CARG_CNTB, 0) - Isnull(IM_ABON_CNTB, 0)), 0)             
           From  TASALD_EMPR            
           Where CO_EMPR = "' + @ISCO_EMPR + '" '            
   Else if @ISTI_REPO_EMPR = 'F'            
    Select @VSDE_SELE_0001 = 'Select Isnull(sum(Isnull(IM_TOTA_CARG, 0) - Isnull(IM_TOTA_ABON, 0)), 0)             
           From TASALD_FLEF            
           Where CO_EMPR = "' + @ISCO_EMPR + '" '            
  End             
 Else If @ISTI_REPO = 'C'             
  Begin            
   If @ISTI_REPO_EMPR = 'C'            
    Select @VSDE_SELE_0001 = 'Select Isnull(sum(Isnull(IM_CARG_MESE, 0) - Isnull(IM_ABON_MESE, 0)), 0)            
           From TASALD_CORP '            
  End    
End          
Else if @ISCO_FORM = '@CARG'   
 Begin  
 If @ISTI_REPO = 'E'             
  Begin            
   If @ISTI_REPO_EMPR = 'P'            
    Select @VSDE_SELE_0001 ='Select Isnull(Sum(Isnull(IM_CARG_CNTB, 0) ), 0)  
           From  TASALD_EMPR            
           Where CO_EMPR = "' + @ISCO_EMPR + '" '            
   Else if @ISTI_REPO_EMPR = 'F'            
    Select @VSDE_SELE_0001 = 'Select Isnull(sum(Isnull(IM_TOTA_CARG, 0) ), 0)  
           From TASALD_FLEF            
           Where CO_EMPR = "' + @ISCO_EMPR + '" '            
  End             
 Else If @ISTI_REPO = 'C'             
  Begin            
   If @ISTI_REPO_EMPR = 'C'            
    Select @VSDE_SELE_0001 = 'Select Isnull(sum(Isnull(IM_CARG_MESE, 0) ), 0)  
           From TASALD_CORP '            
  End   
 End   
Else if @ISCO_FORM = '@ABON'   
 Begin  
 If @ISTI_REPO = 'E'             
  Begin            
   If @ISTI_REPO_EMPR = 'P'            
    Select @VSDE_SELE_0001 ='Select Isnull(Sum(Isnull(IM_ABON_CNTB, 0)), 0)  
           From  TASALD_EMPR            
           Where CO_EMPR = "' + @ISCO_EMPR + '" '            
   Else if @ISTI_REPO_EMPR = 'F'            
    Select @VSDE_SELE_0001 = 'Select Isnull(Sum(Isnull(IM_TOTA_ABON, 0)), 0)  
           From TASALD_FLEF            
           Where CO_EMPR = "' + @ISCO_EMPR + '" '            
  End             
 Else If @ISTI_REPO = 'C'             
  Begin            
   If @ISTI_REPO_EMPR = 'C'            
    Select @VSDE_SELE_0001 = 'Select Isnull(Sum(Isnull(IM_ABON_MESE, 0)), 0)  
           From TASALD_CORP '            
  End    
 End      
  
/*-- CASOS ---*/            
/*-- Si la cuenta no es nula --*/            
If @ISTI_REPO = 'E'            
 Begin            
  if @ISTI_REPO_EMPR = 'F'            
    Select @VSDE_SELE_0003 = 'and CO_CNTA_FLEF ="' + @VSCO_CNTA_TEMP +'" '        
  Else if @ISTI_REPO_EMPR = 'P'  
      If @VSCO_CNTA_TEMP = '%'  -- Si no hay Codigo Cuenta            
        If @VSTI_AUXI_TEMP = '%'   -- Si no hay C>digo Tipo Auxiliar            
          If @VSCO_AUXI_TEMP = '%'    -- Si no hay C>digo Auxiliar             
            If @VSCO_ORDE_TEMP = '%'    -- Si no hay C>digo Orden Servicio            
                Select @VSDE_SELE_0003 = ''            
            Else            
                Select @VSDE_SELE_0003 = ' and CO_ORDE_SERV Like "' + @VSCO_ORDE_TEMP + '%" '            
          Else  -- Si hay C>digo Auxiliar                            
            If @VSCO_ORDE_TEMP = '%'    -- Si no hay C>digo Orden Servicio            
                Select @VSDE_SELE_0003 = ' and CO_AUXI_EMPR Like "' + @VSCO_AUXI_TEMP + '%" '                           
            
            Else            
                Select @VSDE_SELE_0003 = ' and CO_AUXI_EMPR Like "' + @VSCO_AUXI_TEMP + '%"            
                       and CO_ORDE_SERV Like "' + @VSCO_ORDE_TEMP + '%" '            
        Else  -- Si hay C>digo Tipo Auxiliar            
          If @VSCO_AUXI_TEMP = '%'    -- Si no hay C>digo Auxiliar             
            If @VSCO_ORDE_TEMP = '%'    -- Si no hay C>digo Orden Servicio            
              Select @VSDE_SELE_0003 = ' and TI_AUXI_EMPR = "' + @VSTI_AUXI_TEMP + '" '        
            Else            
              Select @VSDE_SELE_0003 = ' and TI_AUXI_EMPR = "' + @VSTI_AUXI_TEMP + '"            
                     and CO_ORDE_SERV Like "' + @VSCO_ORDE_TEMP + '%" '            
          Else  -- Si hay C>digo Auxiliar                            
            If @VSCO_ORDE_TEMP = '%'    -- Si no hay C>digo Orden Servicio            
                Select @VSDE_SELE_0003 = ' and TI_AUXI_EMPR = "' + @VSTI_AUXI_TEMP + '"            
                       and CO_AUXI_EMPR Like "' + @VSCO_AUXI_TEMP + '%" '            
            Else            
                Select @VSDE_SELE_0003 = ' and TI_AUXI_EMPR = "' + @VSTI_AUXI_TEMP + '"            
             and CO_AUXI_EMPR Like "' + @VSCO_AUXI_TEMP + '%"            
                       and CO_ORDE_SERV Like "' + @VSCO_ORDE_TEMP + '%" '            
      Else   -- Si hay Codigo Cuenta              
        If @VSTI_AUXI_TEMP = '%'   -- Si no hay C>digo Tipo Auxiliar            
          If @VSCO_AUXI_TEMP = '%'    -- Si no hay C>digo Auxiliar             
            If @VSCO_ORDE_TEMP = '%'    -- Si no hay C>digo Orden Servicio            
             Select @VSDE_SELE_0003 = ' And CO_CNTA_EMPR = "' + @VSCO_CNTA_TEMP + '"            
                    And TI_AUXI_EMPR IS NULL             
                    And CO_AUXI_EMPR IS NULL             
                    And CO_ORDE_SERV IS NULL '                             
            Else            
                Select @VSDE_SELE_0003 = ' And CO_CNTA_EMPR Like "' + @VSCO_CNTA_TEMP + '%"            
                       And CO_ORDE_SERV Like "' + @VSCO_ORDE_TEMP + '%" '            
          Else  -- Si hay C>digo Auxiliar                            
            If @VSCO_ORDE_TEMP = '%'    -- Si no hay C>digo Orden Servicio            
                Select @VSDE_SELE_0003 = ' And CO_CNTA_EMPR Like "' + @VSCO_CNTA_TEMP + '%"            
                       And CO_AUXI_EMPR Like "' + @VSCO_AUXI_TEMP + '%" '                            
            Else            
                Select @VSDE_SELE_0003 = ' And CO_CNTA_EMPR = "' + @VSCO_CNTA_TEMP + '"            
                       And CO_AUXI_EMPR Like "' + @VSCO_AUXI_TEMP + '%"            
                       And CO_ORDE_SERV Like "' + @VSCO_ORDE_TEMP + '%" '            
        Else  -- Si hay C>digo Tipo Auxiliar            
          If @VSCO_AUXI_TEMP = '%'    -- Si no hay C>digo Auxiliar             
            If @VSCO_ORDE_TEMP = '%'    -- Si no hay C>digo Orden Servicio            
                Select @VSDE_SELE_0003 = ' And CO_CNTA_EMPR Like "' + @VSCO_CNTA_TEMP + '%"            
                       And TI_AUXI_EMPR = "' + @VSTI_AUXI_TEMP + '" '        
            Else            
                Select @VSDE_SELE_0003 = ' And CO_CNTA_EMPR Like "' + @VSCO_CNTA_TEMP + '%"            
                       And TI_AUXI_EMPR = "' + @VSTI_AUXI_TEMP + '"            
                       And CO_ORDE_SERV Like "' + @VSCO_ORDE_TEMP + '%" '            
          Else  -- Si hay C>digo Auxiliar                            
            If @VSCO_ORDE_TEMP = '%'    -- Si no hay C>digo Orden Servicio            
                Select @VSDE_SELE_0003 = ' And CO_CNTA_EMPR Like "' + @VSCO_CNTA_TEMP + '%"            
                       And TI_AUXI_EMPR = "' + @VSTI_AUXI_TEMP + '"            
                       And CO_AUXI_EMPR Like "' + @VSCO_AUXI_TEMP + '%" '            
            Else            
                Select @VSDE_SELE_0003 = ' And CO_CNTA_EMPR Like "' + @VSCO_CNTA_TEMP + '%"            
                       And TI_AUXI_EMPR = "' + @VSTI_AUXI_TEMP + '"            
                       And CO_AUXI_EMPR Like "' + @VSCO_AUXI_TEMP + '%"            
                   And CO_ORDE_SERV Like "' + @VSCO_ORDE_TEMP + '%" '            
 End            
Else If @ISTI_REPO = 'C'            
  if @ISTI_REPO_EMPR = 'C'            
    Select @VSDE_SELE_0003 = ' And CO_CNTA_CORP ="' + @VSCO_CNTA_TEMP +'" '        
            
/*--- Para agrupar por formulas --*/            
if @ISCO_FORM = '@SALD' Or @ISCO_FORM = '@SANT' Or @ISCO_FORM = '@CARG' Or @ISCO_FORM = '@ABON'            
  Select @VSDE_SELE_0004 = ''            
            
if @ISCO_FORM = '@ACRE'            
  if @ISTI_REPO_EMPR = 'P'            
    Select @VSDE_SELE_0004 = ' having sum(IM_CARG_CNTB - IM_ABON_CNTB) < 0 '            
  Else if @ISTI_REPO_EMPR = 'F'            
    Select @VSDE_SELE_0004 = ' having sum(IM_TOTA_CARG - IM_TOTA_ABON) < 0 '            
  Else if @ISTI_REPO_EMPR = 'C'            
    Select @VSDE_SELE_0004 = ' having sum(IM_CARG_MESE - IM_ABON_MESE) < 0 '            
            
if @ISCO_FORM = '@DEUD'            
  if @ISTI_REPO_EMPR = 'P'                Select @VSDE_SELE_0004 = ' Having sum(IM_CARG_CNTB - IM_ABON_CNTB) > 0 '            
  Else if @ISTI_REPO_EMPR = 'F'            
    Select @VSDE_SELE_0004 = ' Having sum(IM_TOTA_CARG - IM_TOTA_ABON) > 0 '            
  Else if @ISTI_REPO_EMPR = 'C'            
    Select @VSDE_SELE_0004 = ' Having sum(IM_CARG_MESE - IM_ABON_MESE) > 0 '            
            
Select @VNNU_CONT = 1            
Select @VSNU_COLU = @ISNU_COLU_0001            
            
While @VNNU_CONT <= 15            
 Begin              
              
   select @VNIM_SALD = 0            
   select @CNIM_SALD_TEMP = 0            
            
  /*---- Para saber si es acumulado o del periodo ---*/            
   If @VSNU_COLU IS NOT NULL AND @VSNU_COLU <> ''             
      Begin            
          If @ISTI_REPO = 'E' /* Empresa */        
            Begin            
--SELECT 'PARAMETRO', @VSNU_COLU        
              Select @VSNU_REGI_TEMP = Substring( @VSNU_COLU, 1, 1 )            
              Select @VSNU_ANNO_TEMP = Substring( @VSNU_COLU, 2, 4 )            
              Select @VSNU_MESE_TEMP = Substring( @VSNU_COLU, 6, 2 )            
              Select @VSTI_SALD_TEMP = Substring( @VSNU_COLU, 8, 1 )            
              Select @VSCO_UNID_TEMP = Substring( @VSNU_COLU, 9, 3 )            
                         
              If @ISCO_FORM = '@SANT'            
               Begin            
                If @VSTI_SALD_TEMP = 'P'            
                 Select @VSDE_SELE_0002 = ' and NU_CNTB_EMPR = '+ @VSNU_REGI_TEMP + '            
                        and NU_ANNO = '+ @VSNU_ANNO_TEMP + '            
                        and NU_MESE = '+ @VSNU_MESE_TEMP + '- 1 '        
                Else if @VSTI_SALD_TEMP = 'A'             
                 Select @VSDE_SELE_0002 = ' and NU_CNTB_EMPR = '+ @VSNU_REGI_TEMP + '            
                        and NU_ANNO = '+ @VSNU_ANNO_TEMP + '            
                        and NU_MESE <= '+ @VSNU_MESE_TEMP + '- 1 '        
               End            
              Else            
               Begin            
                If @VSTI_SALD_TEMP = 'P'            
                 Select @VSDE_SELE_0002 = ' and NU_CNTB_EMPR = '+ @VSNU_REGI_TEMP + '            
   and NU_ANNO = '+ @VSNU_ANNO_TEMP + '            
                        and NU_MESE = '+ @VSNU_MESE_TEMP             
                Else if @VSTI_SALD_TEMP = 'A'             
                 Select @VSDE_SELE_0002 = ' and NU_CNTB_EMPR = '+ @VSNU_REGI_TEMP + '            
                        and NU_ANNO = '+ @VSNU_ANNO_TEMP + '            
                        and NU_MESE <= '+ @VSNU_MESE_TEMP             
               End            
              If @VSCO_UNID_TEMP Is Null Or Rtrim(@VSCO_UNID_TEMP) = '' Or @ISTI_REPO_EMPR = 'F'        
                Select @VSDE_SELE_0005 = ''         
              Else         
                Select @VSDE_SELE_0005 = ' And CO_UNID_CNTB = "' + @VSCO_UNID_TEMP + '" '        
            End            
          Else If @ISTI_REPO = 'C' /* Corporacion */        
            Begin            
              Select @VSNU_ANNO_TEMP = Substring( @VSNU_COLU, 1, 4 )            
              Select @VSNU_MESE_TEMP = Substring( @VSNU_COLU, 5, 2 )            
              Select @VSTI_SALD_TEMP = Substring( @VSNU_COLU, 7, 1 )            
            
              If @ISCO_FORM = '@SANT'            
               Begin            
                If @VSTI_SALD_TEMP = 'P'            
                  Select @VSDE_SELE_0002 = ' Where NU_ANNO = '+ @VSNU_ANNO_TEMP + '            
                         and NU_MESE = '+ @VSNU_MESE_TEMP + '- 1 '        
                Else if @VSTI_SALD_TEMP = 'A'             
                  Select @VSDE_SELE_0002 = ' Where NU_ANNO = '+ @VSNU_ANNO_TEMP + '            
                         and NU_MESE <= '+ @VSNU_MESE_TEMP + '- 1 '        
               End            
              Else        
               Begin        
                If @VSTI_SALD_TEMP = 'P'        
 Select @VSDE_SELE_0002 = ' Where NU_ANNO = '+ @VSNU_ANNO_TEMP + '        
                         and NU_MESE = '+ @VSNU_MESE_TEMP        
                Else if @VSTI_SALD_TEMP = 'A'        
                  Select @VSDE_SELE_0002 = ' Where NU_ANNO = '+ @VSNU_ANNO_TEMP + '        
                         and NU_MESE <= '+ @VSNU_MESE_TEMP        
               End        
              Select @VSDE_SELE_0005 = ''        
            End        
        
-- select @VSDE_SELE_0001 Select @VSDE_SELE_0002 Select @VSDE_SELE_0003 Select @VSDE_SELE_0004            
        
   Exec('Declare CU_TDREPO_FINA_Q01_1 cursor for ' + @VSDE_SELE_0001 + @VSDE_SELE_0002 + @VSDE_SELE_0005        
                 + @VSDE_SELE_0003 + @VSDE_SELE_0004)            
            
   open CU_TDREPO_FINA_Q01_1            
   Fetch CU_TDREPO_FINA_Q01_1 into @CNIM_SALD_TEMP            
              
     While @@Fetch_status = 0             
    Begin            
       Select @VNIM_SALD = @CNIM_SALD_TEMP            
            
   Fetch CU_TDREPO_FINA_Q01_1 into @CNIM_SALD_TEMP            
    End            
             
          close CU_TDREPO_FINA_Q01_1            
          deallocate CU_TDREPO_FINA_Q01_1            
        End            
            
  Select @VNNU_CONT = @VNNU_CONT + 1            
            
  if @VNIM_SALD IS NULL            
   Select @VNIM_SALD = 0            
            
  if @VSNU_COLU IS NULL            
    Select @VNIM_SALD = 0            
              
  if @VNNU_CONT = 2            
   Begin            
    insert into #TWSALD_EMPR_Q23_1(IM_MVTO_0001)            
    values(convert(varchar(20),@VNIM_SALD))            
    Select @VSNU_COLU = @ISNU_COLU_0002            
   End            
  Else If @VNNU_CONT = 3            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0002 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0003            
   End            
  Else If @VNNU_CONT = 4            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0003 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0004            
   End            
  Else If @VNNU_CONT = 5          
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0004 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0005            
   End            
  Else If @VNNU_CONT = 6            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0005 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0006            
   End            
  Else If @VNNU_CONT = 7            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0006 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0007            
   End            
  Else If @VNNU_CONT = 8            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0007 = convert(varchar(20),@VNIM_SALD)            
   Select @VSNU_COLU = @ISNU_COLU_0008            
   End            
  Else If @VNNU_CONT = 9            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0008 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0009            
   End            
  Else If @VNNU_CONT = 10            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0009 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0010            
   End            
  Else If @VNNU_CONT = 11            
   Begin            
    Update #TWSALD_EMPR_Q23_1             
    Set IM_MVTO_0010 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0011            
   End            
  Else If @VNNU_CONT = 12            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0011 = convert(varchar(20),@VNIM_SALD)            
Select @VSNU_COLU = @ISNU_COLU_0012            
   End            
  Else If @VNNU_CONT = 13            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0012 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0013            
   End            
  Else If @VNNU_CONT = 14            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0013 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0014            
   End            
  Else If @VNNU_CONT = 15            
   Begin            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0014 = convert(varchar(20),@VNIM_SALD)            
    Select @VSNU_COLU = @ISNU_COLU_0015            
   End            
  Else If @VNNU_CONT = 16            
    Update #TWSALD_EMPR_Q23_1            
    Set IM_MVTO_0015 = convert(varchar(20),@VNIM_SALD)            
            
  Select @VNIM_SALD = 0            
  Select @CNIM_SALD_TEMP = 0            
 End            
            
select * from #TWSALD_EMPR_Q23_1            
            
return            
/*------------------------------------- Fin --------------------------------------*/


GO
